# RWKV-4

本页面介绍了如何在 LangChain 中使用 `RWKV-4` 包装器。
它分为两个部分：安装和设置，然后是带有示例的用法。

## 安装和设置
- 使用 `pip install rwkv` 安装 Python 包
- 使用 `pip install tokenizer` 安装 tokenizer Python 包
- 下载一个 [RWKV 模型](https://huggingface.co/BlinkDL/rwkv-4-raven/tree/main) 并将其放置在所需目录中
- 下载 [tokens 文件](https://raw.githubusercontent.com/BlinkDL/ChatRWKV/main/20B_tokenizer.json)

## 用法

### RWKV

要使用 RWKV 包装器，您需要提供预训练模型文件的路径和 tokenizer 的配置。
```python
from langchain.llms import RWKV

# Test the model

``` python

def generate_prompt(instruction, input = None):
    if input:
        return f "" " 以下是描述任务的指令，配对使用提供更多上下文的输入。编写一个适当完成请求的响应。

# 指令：
{instruction}

# 输入：
{input}

# 响应：
"" "
    else:
        return f "" " 以下是描述任务的指令。编写一个适当完成请求的响应。

# 指令：
{instruction}

# 响应：
"" "


model = RWKV(model = "./models/RWKV-4-Raven-3B-v7-Eng-20230404-ctx4096.pth", strategy = "cpu fp32", tokens_path = "./rwkv/20B_tokenizer.json")
response = model(generate_prompt("从前有一座山，"))
```
## Model File

You can find links to model file downloads at the [RWKV-4-Raven](https://huggingface.co/BlinkDL/rwkv-4-raven/tree/main) repository.

### Rwkv-4 models -> recommended VRAM


```
RWKV VRAM
模型 | 8 位 | bf16/fp16 | fp32
14B   | 16GB | 28GB      | > 50GB
7B    | 8GB  | 14GB      | 28GB
3B    | 2.8GB| 6GB       | 12GB
1b5   | 1.3GB| 3GB       | 6GB
```

See the [rwkv pip](https://pypi.org/project/rwkv/) page for more information about strategies, including streaming and cuda support.
